/*
 * Licensed to the Tai Ping Jin Ke
 *
 * Copyright (c) 2022 .
 * All rights reserved.
 * 项目名称：太平金科-通用能力封装层-公共组件
 * 版权说明：本软件属太平金融科技服务(上海)有限公司所有，在未获得太平金融科技服务(上海)有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.taipingframework.utility.thread.threadpool;

import lombok.extern.slf4j.Slf4j;
import org.springframework.core.task.TaskDecorator;
import org.springframework.lang.NonNull;

@Slf4j
public class SpringTaskDecorator implements TaskDecorator {

    @NonNull
    @Override
    public Runnable decorate(@NonNull Runnable runnable) {
        return () -> {
            try {
                log.trace("线程池任务装饰器 - begin");
                // 在执行线程池任务之前，可以执行一些传参逻辑
                runnable.run();
            } finally {
                // 在执行线程池任务之后，需要执行一些清理线程工作内存数据的逻辑
                log.trace("线程池任务装饰器 - end");
            }
        };
    }

}
